<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0px;
            padding: 0px;
            list-style:none;
        }
        div{
            width: 520px;
            height: 800px;
            margin:100px auto;
            position: relative;
            /* 超出隐藏 */
            overflow: hidden;
        }
        ul{
            width: 9999px;
        }
        ul li{
            float: left;
            
        }
        ol{
            position: absolute;
            bottom:20px;
            left: 50%;
            /* translateX设置百分比，参照物是标签的宽度 */
            transform: translateX(-50%)
        }
        ol li{
            width: 8px;
            height: 8px;
            background:white;
            border-radius: 50%;
            margin:0px 4px;
            float: left;
            cursor: pointer;
        }
        span{
            position: absolute;
            background:lime;
            top:50%;
            transform: translateY(-50%);
            cursor: pointer;
        }
        span:nth-of-type(1){
            left: 10px;
        }
        span:nth-of-type(2){
            right: 10px;
        }
        .current{
            background:lime;
        }
    </style>
</head>
<body>
    <div id="wrap">
        <ul id="box">
            <li>
                <img src="sp.jpg" alt="" width="520px">
            </li>
            <li>
                <img src="bm.jpg" alt="" width="520px">
            </li>
            <li>
                <img src="xq.jpg" alt="" width="520px">
            </li>
            <li>
                <img src="xqtp.jpg" alt="" width="520px">
            </li>
        </ul>
        <!-- ol>li有序列表，用法和ul一模一样  实现小点点-->
        <ol id="list">
            <li class="current"></li>
            <li></li>
            <li></li>
            <li></li>
        </ol>
        <span id="left">左</span>
        <span id="right">右</span>
    </div>
    <script>
        // 获取标签
        var box=document.getElementById('box');
        var wrap=document.getElementById('wrap');
        var right=document.getElementById('right');
        var left=document.getElementById('left');
        // a.children 选择a的子级 得到的是一个类数组
        var list=document.getElementById('list').children
        var num=0;
        var timer;
        // 函数的作用，封装。把重复代码封装起来 function 函数名(){执行代码}
        function fn(){
            // 页面刚进来的时候，自动播放
            timer=setInterval(function(){
            num++;
            if(num>3){
                num=0;
            }
            var t=-num*520;
                // 修改css 常量和变量中间使用+拼接
                box.style.transform='translateX('+t+'px)';
                // 排他
                for(var j=0;j<list.length;j++){
                    list[j].className='';
                }
                // 小圆点变色
                list[num].className='current'
            },1000)
        }
        // 使用函数 相当于把函数执行一遍
        fn()
        // 鼠标移入，停止定时器
        wrap.onmouseenter=function(){
            clearInterval(timer)
        }
        // 鼠标移出，重新开始
        wrap.onmouseleave=function(){
           fn()
        }

        // 所有的小圆点
        for(var i=0;i<list.length;i++){
            // 自定义属性
            list[i].index=i;
            list[i].onclick=function(){
                // 排他
                for(var j=0;j<list.length;j++){
                    list[j].className='';
                }
                this.className='current';
                // 获取index
                num=this.index;
                var t=-num*520;
                // 修改css 常量和变量中间使用+拼接
                box.style.transform='translateX('+t+'px)';
            }
        }

        // 右边绑定事件
        right.onclick=function(){
            num++;
            if(num>3){
                num=0;
            }
            var t=-num*520;
                // 修改css 常量和变量中间使用+拼接
                box.style.transform='translateX('+t+'px)';
                // 排他
                for(var j=0;j<list.length;j++){
                    list[j].className='';
                }
                // 小圆点变色
                list[num].className='current'
        }
        left.onclick=function(){
            num--;
            if(num<0){
                num=3;
            }
            var t=-num*520;
                // 修改css 常量和变量中间使用+拼接
                box.style.transform='translateX('+t+'px)';
                // 排他
                for(var j=0;j<list.length;j++){
                    list[j].className='';
                }
                // 小圆点变色
                list[num].className='current'
        }

    </script>
</body>
</html>